home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 36 / Amiga Format CD36 (1999-01-22)(Future Publishing)(GB)[!][issue 1999-02].iso / -seriously_amiga- / graphics / gfx3d.library / docs / programmazione.txt < prev    next >
Text File  |  1998-12-12  |  4KB  |  87 lines

  1.  
  2. -------------------------------------------------------------------------------
  3.  
  4.                           DIRETTIVE DI PROGRAMMAZIONE
  5.  
  6. -------------------------------------------------------------------------------
  7.  
  8.  
  9.  Programmare la libreria gfx3d.library è estremamente semplice. Potenti
  10. funzioni costituiscono l'interfaccia di programmazione della libreria. Al
  11. programmatore non è richiesta alcuna conoscenza di grafica tridimensionale,
  12. quali la manipolazione delle matrici nella graphics pipeline, la trasformazione
  13. delle coordinate (traslazione, rotazione, ecc...) della scena visualizzata e
  14. così via. Compito del programmatore è solo quello di definire le strutture dati
  15. necessarie e modificare le loro proprietà nel tempo. Al tutto il resto penserà
  16. la libreria.
  17.  
  18. IMPORTANTE:
  19.   Nella versione attuale è possibile aprire la libreria solo da un programma
  20.   per volta. Successive aperture falliranno.
  21.  
  22.  Normalmente, il codice che fà uso della libreria gfx3d.library è suddivisibile
  23. in due sezioni principali.
  24.  La prima cosa da fare è infatti definire le strutture dati della scena.
  25. Identificheremo questa fase come 'sezione di definizione' di una struttura
  26. dati.
  27.  Successivamente, una volta definite tutte le strutture dati necessarie, sarà
  28. possibile utilizzare tali strutture al fine di aggiornare dinamicamente la
  29. scena visualizzata. Identificheremo questa fase come 'sezione di gestione'
  30. delle strutture dati definite.
  31.  
  32.  Attualmente (gfx3d.library v2.x), una sezione di definizione inizia sempre con
  33. la funzione GFXBegin() e termina con la funzione GFXEnd(). Le struttura dati
  34. necessarie ad un corretto funzionamento della libreria sono le seguenti:
  35.  
  36.   - una telecamera (Camera), che fornisce la vista della scena;
  37.  
  38.   - un ambiente (Environment), contenente gli oggetti da visualizzare. Ogni
  39.     telecamera fà infatti riferimento ad un ambiente;
  40.  
  41.   - uno o più oggetti (Object), costituenti a tutti gli effetti ciò che si deve
  42.     vedere nella scena;
  43.  
  44.   - uno o più fotogrammi (Frame), costituenti quello che ogni oggetto
  45.     rappresenta;
  46.  
  47.   - uno o più poligoni (Polygon), dei quali sono composti i singoli fotogrammi.
  48.  
  49. A partire dalla versione 2.0 è stata aggiunta la seguente struttura dati:
  50.  
  51.   - una tabella delle sfumature (ShadeTable), associata all'ambiente ed
  52.     utilizzata per calcolare le sfumature di ogni colore.
  53.  
  54.  Le precedenti strutture dati si riferiscono solamente ad una scena da
  55. visualizzare. La libreria è però in grado di gestire un numero qualunque di
  56. scene contemporaneamente. Per ogni scena vanno quindi definiti una Camera, un
  57. Environment ed uno o più Objects. Solo le strutture Frames e ShadeTables
  58. possono essere condivise da più scene.
  59.  
  60.  Le funzioni che vengono utilizzate in una sezione di gestione sono le funzioni
  61. GFXModify...(), le quali si occupano di modificare i parametri delle varie
  62. strutture dati, e le funzioni GFXUpdate...(), che sono adibite ad aggiornare la
  63. scena e l'output video.
  64.  
  65.  I parametri modificabili di una determinata struttura dati sono solo quelli
  66. specificati dalle funzioni GFXModify...(). E' contro le specifiche modificare
  67. direttamente le strutture dati presenti in memoria, in quanto si è voluta
  68. utilizzare una rappresentazione assimilabile al 'tipo di dato astratto' proprio
  69. della programmazione ad oggetti. In questo modo, qualsiasi modifica interna
  70. delle strutture dati non si ripercuote all'esterno. E' possibile infatti che
  71. differenti versioni e/o revisioni della libreria utilizzino una
  72. rappresentazione interna delle strutture dati differente da quella corrente, al
  73. fine di ottimizzare la velocità generale.
  74.  
  75.  Lo stesso ragionamento si applica alla rappresentazione interna dei numeri
  76. reali. Dal momento che non tutti gli Amiga dispongono di una FPU, attualmente
  77. i numeri reali vengono rappresentati in virgola fissa nel formato 16bit/16bit .
  78. E' però possibile che diverse versioni e/o revisioni della libreria supportino
  79. l'FPU di alcuni processori (ad esempio in versioni per lo 060), quindi, per
  80. specifica di compatibilità, è consigliato l'utilizzo delle numerose funzioni
  81. matematiche offerte dalla libreria. In ogni caso, è possibile sapere il
  82. supporto o meno dell'FPU tramite la funzione GFXFeatures(). Si noti però che il
  83. tempo perso in chamate alle funzioni matematiche è TOTALMENTE TRASCURABILE
  84. rispetto al tempo necessario a visualizzare la scena...
  85.  
  86.  
  87.